package com.soosync.common;

import org.apache.log4j.Logger;

/**
 * ��װlog4j�����ṩʹ�� �������ڣ�(2002-9-12 15:05:09)
 * 
 * @author��pocket,cohorse
 */
public class Log4jExtend {
	private Logger logger;
	private long startTime;

	/**
	 * Log4jExtend ���췽����Ĭ��ʹ��log4jExtend.properties��Ϊ�����ļ���
	 * 
	 * @param className
	 *            ����
	 */
	public Log4jExtend(String className) {
		this(className, "log4jExtend.properties");
	}

	/**
	 * Log4jExtend ���췽�����ƶ�����������ļ���
	 * 
	 * @param className
	 *            ����
	 * @param propertyFileName
	 *            ��־�����ļ���
	 */
	public Log4jExtend(String className, String propertyFileName) {
		super();
		try {
			logger = Logger.getLogger(className);
			// PropertyConfigurator.configure(propertyFileName);
		} catch (Throwable e) {
			System.out.println(e);
			System.out.println(e.getMessage());
			System.out.println(e.getStackTrace());
		}
	}

	/**
	 * �������debug��Ϣ
	 * 
	 * @param message
	 *            �����Ϣ
	 */
	public void debug(String message) {
		logger.debug(message + "\n");
	}

	/**
	 * �������������Ϣ
	 * 
	 * @param message
	 *            �����Ϣ
	 */
	public void error(String message) {
		logger.error("ERROR ��" + message + "\n");
	}

	/**
	 * �������info��Ϣ
	 * 
	 * @param message
	 *            java.lang.String ��Ҫ�������Ϣ����
	 */
	public void info(String message) {
		logger.info(message + "\n");
	}

	/**
	 * ��Ҫ��runTime(String)����һ��ʹ��
	 */
	public void methodStart() {
		startTime = System.currentTimeMillis();
	}

	/**
	 * �����������ʱ�䣬��Ҫ��methodStart()һ��ʹ��
	 * 
	 * @param param
	 *            java.lang.String ������ƣ���ʵ����һ���ַ�
	 */
	public void runTime(String methodName) {
		logger.info("methodName runTime ------> "
				+ (System.currentTimeMillis() - startTime));
	}

	/**
	 * ���������Ϣ
	 * 
	 * @param message
	 *            java.lang.String ������Ϣ
	 */
	public void warn(String message) {
		logger.warn("WARN �� " + message + "\n");
	}

	/**
	 * logger������
	 * 
	 * @param className
	 *            java.lang.String ������
	 * @return Log4jExtend����
	 */
	public Log4jExtend setClassName(String className) {
		this.logger = Logger.getLogger(className);
		return this;
	}
}